package com.correo.modelo.client;

import java.sql.SQLException;
import java.util.List;

import com.correo.database.beans.CasillaCorreoBean;
import com.correo.database.beans.ConsultaMailBean;
import com.correo.database.beans.MailBean;
import com.correo.database.beans.UserBean;
import com.correo.database.client.ConfiguracionClient;
import com.correo.database.client.ManagerMensajes;
import com.correo.socket.client.beans.UsuarioValidado;

public class ModelClient {

	private ModelCasillaCorreo	modelCasillaCorreo;
	public ModelClient(){
		modelCasillaCorreo = new ModelCasillaCorreo();
	}
	

	public List<MailBean> getMensajesRecibidos() {
		ManagerMensajes manager = new ManagerMensajes();
		UserBean user = new UserBean("1");
		
		try {
			return manager.ListMailsByUser(user);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
		
	}
	// Nueva Rudy
	public List<MailBean> getMails(ConsultaMailBean consultaMail) {
		ManagerMensajes manager = new ManagerMensajes();
		
		try {
			return manager.ListMails(consultaMail);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
		
	}
	
	
	
	
	/**
	 * @descripcion
	 * 				Obtengo desde la base todas las casillas de correos de cierto usuario.
	 * @return lista de Casillas de correos
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 */
	public List<CasillaCorreoBean> getCasillaCorreo(UserBean userConnect) throws ClassNotFoundException, SQLException {
		if(userValid(userConnect)){
			return modelCasillaCorreo.getListaCasillaCorreo(userConnect);
		}
		return null;
	}

	private boolean userValid(UserBean userConnect) {
		if(userConnect==null){
			return false;			
		}
		if(userConnect.getId()==null){
			return false;
		}
		if(userConnect.getId().equals("")){
			return false;
		}
		return true;
	}


	public List<CasillaCorreoBean> getCasillaCorreoAgenda(CasillaCorreoBean casilla) throws SQLException, ClassNotFoundException {
		// obtengo la agenda del usuario, son todas las casillas a las que puede mandar mails
		
			return modelCasillaCorreo.getListaCasillaCorreoAgenda(casilla);
	
		
	}


	public void setConsultaMail(ConsultaMailBean consultaMail) throws SQLException, ClassNotFoundException {
		ManagerMensajes manager = new ManagerMensajes();
		manager.setConsultaMail(consultaMail);
	}


	public void enviarMail(MailBean mail) throws SQLException, ClassNotFoundException {
		ManagerMensajes manager = new ManagerMensajes();
		manager.enviarMail(mail);
	}



	public void eliminarMails(List<MailBean> lista) {
		// TODO Auto-generated method stub
		
	}



	public void setConnection(UsuarioValidado usuarioValidado) {
		ConfiguracionClient.URL = usuarioValidado.getCadenaconeccion();
		ConfiguracionClient.USER = usuarioValidado.getUserName();
		ConfiguracionClient.PASSWORD = usuarioValidado.getPassword();
		
	}



	public void eliminarMail(MailBean mail) throws SQLException, ClassNotFoundException {
		ManagerMensajes manager = new ManagerMensajes();
		manager.eliminarMensaje(mail);
		
	}

}
